import { makeAutoObservable,computed } from 'mobx';

class Try {
  // 定义数据
  value = 0
  listArr = [1, 2, 3]
  constructor() {
    // 响应式处理
    //不加上，数据变 但是视图不变 
    makeAutoObservable(this,{
      double:computed,
      listArrPush:computed,
      // 当你的方法 是一个异步时，请好好标记他的方法为flow 文档上已经说明了这个flow标注的重要性
      // asyncFunc:flow
    })
  }
  // 定义修改函数  action
  increment = () => {
    this.value++
  }
  //记住要是箭头函数。this指向问题
  addlist = () => {
    this.listArr.push(7)
  }
  // 这是计算过后的属性  导出出去直接用 和vuex的getter一样
  get double(){
    return this.value * 3
  }
  // // 计算属性 computed,定义计算属性 get修饰符
  get listArrPush() {
    return this.listArr.filter(item => item > 2)
  }
  // async asyncFunc(){}
}
// ​实力化导出
const tryStore = new Try();
export { tryStore }
